package iedcyt.acute.dataAccess.factories;


import iedcyt.acute.dataAccess.dao.maauco.*;
import iedcyt.acute.dataAccess.dao.maesorg.Datos_LevelDao;
import iedcyt.acute.dataAccess.dao.maesorg.Dbo_REVISTAS_JCRDao;
import iedcyt.acute.dataAccess.dao.maesorg.IdiomasDeDocumentosDao;
import iedcyt.acute.dataAccess.dao.maesorg.JCR_SCI_SSCIDao;
import iedcyt.acute.dataAccess.dao.maesorg.PaisesDao;
import iedcyt.acute.dataAccess.dao.maesorg.RevistasCSICenWoSDao;
import iedcyt.acute.dataAccess.dao.maesorg.RevistasEnEspanolDao;
import iedcyt.acute.dataAccess.dao.maesorg.RevistasEspanolasDao;
import iedcyt.acute.dataAccess.dao.maesorg.Tipos_de_documentosDao;
import iedcyt.acute.dataAccess.dao.maesorg.Tipos_de_documentos_agrupadosDao;
import iedcyt.acute.dataAccess.dao.maesorg.WoS_REVISTAS_FIsDao;
import iedcyt.acute.dataAccess.dao.maesorg.WoS_REVISTAS_IdPubDao;
import iedcyt.acute.dataAccess.dao.maesorg.WoS_REVISTAS_TemasDao;
import iedcyt.acute.dataAccess.dao.maesorg.WoS_TEMASDao;
import iedcyt.acute.dataAccess.domain.maesorg.Datos_Level;
import iedcyt.acute.dataAccess.idao.IDao;
import iedcyt.acute.dataAccess.idao.maauco.*;
import iedcyt.acute.dataAccess.idao.maesorg.IDatos_LevelDao;
import iedcyt.acute.dataAccess.idao.maesorg.IIdiomasDeDocumentosDao;
import iedcyt.acute.dataAccess.idao.maesorg.IJCR_SCI_SSCIDao;
import iedcyt.acute.dataAccess.idao.maesorg.IPaisesDao;
import iedcyt.acute.dataAccess.idao.maesorg.IRevistasCSICenWoSDao;
import iedcyt.acute.dataAccess.idao.maesorg.IRevistasEnEspanolDao;
import iedcyt.acute.dataAccess.idao.maesorg.IRevistasEspanolasDao;
import iedcyt.acute.dataAccess.idao.maesorg.ITipos_de_documentosDao;
import iedcyt.acute.dataAccess.idao.maesorg.ITipos_de_documentos_agrupadosDao;
import iedcyt.acute.dataAccess.idao.maesorg.IWoS_REVISTAS_FIsDao;
import iedcyt.acute.dataAccess.idao.maesorg.IWoS_REVISTAS_IdPubDao;
import iedcyt.acute.dataAccess.idao.maesorg.IWoS_REVISTAS_TemasDao;
import iedcyt.acute.dataAccess.idao.maesorg.IWoS_TEMASDao;
import iedcyt.acute.dataAccess.idao.maesorg.Idbo_REVISTAS_JCRDao;
import iedcyt.acute.dataAccess.utils.BeansXML;
import iedcyt.acute.dataAccess.utils.Parameters;

import javax.security.auth.login.Configuration;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;


public class AbsMaesorgFactoryDao extends AbsFactoryDao {

	private static AbsMaesorgFactoryDao _instance;

	private IWoS_REVISTAS_FIsDao _WoS_REVISTAS_FIsDao;
	private IWoS_REVISTAS_TemasDao _WoS_REVISTAS_TemasDao;
	private IWoS_TEMASDao _WoS_TEMASDao;
	private IWoS_REVISTAS_IdPubDao _WoS_REVISTAS_IdPubDao;
	private IJCR_SCI_SSCIDao _JCR_SCI_SSCIDao;
	private Idbo_REVISTAS_JCRDao _dbo_REVISTAS_JCRDao;
	private ITipos_de_documentosDao _Tipos_de_documentosDao;
	private ITipos_de_documentos_agrupadosDao _Tipos_de_documentos_agrupadosDao;
	private IIdiomasDeDocumentosDao _IdiomasDeDocumentosDao;
	private IPaisesDao _paisesDao;
private IRevistasCSICenWoSDao _revistasCSICenWoSDao;
private IRevistasEnEspanolDao _revistasEnEspanolDao;
private IRevistasEspanolasDao _revistasEspanolasDao;
private IDatos_LevelDao _datos_levelDao;
	
	
	private AbsMaesorgFactoryDao()
	{super();
		startDaos();
		
	}
	

	public static AbsMaesorgFactoryDao getInstance()
	{
		if (_instance == null) _instance = new AbsMaesorgFactoryDao();
		
		return _instance;
	}
	
	
	
	public IWoS_REVISTAS_FIsDao get_WoS_REVISTAS_FIsDao() {
		return _WoS_REVISTAS_FIsDao;
	}

	public IWoS_REVISTAS_TemasDao get_WoS_REVISTAS_TemasDao() {
		return _WoS_REVISTAS_TemasDao;
	}

	public IWoS_TEMASDao get_WoS_TEMASDao() {
		return _WoS_TEMASDao;
	}

	public IWoS_REVISTAS_IdPubDao get_WoS_REVISTAS_IdPubDao() {
		return _WoS_REVISTAS_IdPubDao;
	}

	public IJCR_SCI_SSCIDao get_JCR_SCI_SSCIDao() {
		return _JCR_SCI_SSCIDao;
	}

	public Idbo_REVISTAS_JCRDao get_dbo_REVISTAS_JCRDao() {
		return _dbo_REVISTAS_JCRDao;
	}

	public ITipos_de_documentosDao get_Tipos_de_documentosDao() {
		return _Tipos_de_documentosDao;
	}
	
	public ITipos_de_documentos_agrupadosDao get_Tipos_de_documentos_agrupadosDao() {
		return _Tipos_de_documentos_agrupadosDao;
	}

	public IIdiomasDeDocumentosDao get_IdiomasDeDocumentosDao() {
		return _IdiomasDeDocumentosDao;
	}

	
	@Override
	protected IDao getIDao() {
		return _WoS_REVISTAS_FIsDao;
	}


	@Override
	public void startDaos() {
		AbstractApplicationContext _context = new FileSystemXmlApplicationContext(Parameters.get_instance().getBeanFile());
		_context.registerShutdownHook();
			
		_WoS_REVISTAS_FIsDao = (WoS_REVISTAS_FIsDao) _context.getBean("woS_REVISTAS_FIsDao");
		_WoS_REVISTAS_FIsDao.create();
		_WoS_REVISTAS_TemasDao = (WoS_REVISTAS_TemasDao) _context.getBean("woS_REVISTAS_TemasDao");
		_WoS_REVISTAS_TemasDao.create();
		_WoS_TEMASDao = (WoS_TEMASDao) _context.getBean("woS_TEMASDao");
		_WoS_TEMASDao.create();
		_WoS_REVISTAS_IdPubDao = (WoS_REVISTAS_IdPubDao) _context.getBean("woS_REVISTAS_IdPubDao");
		_WoS_REVISTAS_IdPubDao.create();
		_JCR_SCI_SSCIDao = (JCR_SCI_SSCIDao) _context.getBean("jCR_SCI_SSCIDao");
		_JCR_SCI_SSCIDao.create();
		_dbo_REVISTAS_JCRDao = (Dbo_REVISTAS_JCRDao) _context.getBean("dbo_REVISTAS_JCRDao");
		_dbo_REVISTAS_JCRDao.create();
		_Tipos_de_documentosDao = (Tipos_de_documentosDao) _context.getBean("tipos_de_documentosDao");
		_Tipos_de_documentosDao.create();
		_Tipos_de_documentos_agrupadosDao = (Tipos_de_documentos_agrupadosDao) _context.getBean("tipos_de_documentos_agrupadosDao");
		_Tipos_de_documentos_agrupadosDao.create();
		_IdiomasDeDocumentosDao = (IdiomasDeDocumentosDao) _context.getBean("idiomasDeDocumentosDao");
		_IdiomasDeDocumentosDao.create();
		_paisesDao = (PaisesDao) _context.getBean("paisesDao");
		_paisesDao.create();
		_revistasCSICenWoSDao = (RevistasCSICenWoSDao) _context.getBean("revistasCSICenWoSDao");
		_revistasCSICenWoSDao.create();
		_revistasEnEspanolDao = (RevistasEnEspanolDao) _context.getBean("revistasEnEspanolDao");
		_revistasEnEspanolDao.create();
		_revistasEspanolasDao = (RevistasEspanolasDao) _context.getBean("revistasEspanolasDao");
		_revistasEspanolasDao.create();
		_datos_levelDao = (Datos_LevelDao) _context.getBean("datoslevelDao");
		_datos_levelDao.create();
		
	}

	public IPaisesDao get_paisesDao() {
		return _paisesDao;
	}



	public IRevistasCSICenWoSDao get_revistasCSICenWoSDao() {
		return _revistasCSICenWoSDao;
	}



	public IRevistasEnEspanolDao get_revistasEnEspanolDao() {
		return _revistasEnEspanolDao;
	}




	public IRevistasEspanolasDao get_revistasEspanolasDao() {
		return _revistasEspanolasDao;
	}

	/**
	 * @see iedcyt.acute.dataAccess.factories.AbsFactoryDao#getPath()
	 */
	@Override
	public String getPath() {
		return BeansXML.getInstance().getDatabasePath("maesorgDataSource");
		
	}


	public IDatos_LevelDao get_datos_levelDao() {
		return _datos_levelDao;
		
	}
	
}
